<?php

namespace app\adminapi\controller;

use think\Controller;
use think\Request;

class Brand extends BaseApi
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index(Request $request)
    {
        # 接收参数
        $keyword = input();
        $where = [];
        # 判断他有没有传入搜索的关键字。和他传入的是不是一个空的关键字
        if (isset($keyword["keyword"]) && !empty($keyword["keyword"])) {
            # 进行膜湖匹配
            $where["name"] = ["like", "%{$keyword['keyword']}%"];
            #$data = \app\common\model\Brand::where("name","like","%{$keyword['keyword']}%")->order("sort desc,id desc")->paginate(10);
        }
        # 如果他没有传入搜索关键字，那么where条件就执行，直接返回当前页码的所有数据，然后进行连表查询返回数据
        $data = \app\common\model\Brand::alias("t1")
            ->join("category t2", "t1.cate_id=t2.id", "left")
            ->field("t1.id,t1.name,t1.logo,t1.desc,t1.sort,t2.is_hot,t2.cate_name")
            ->where($where)
            ->order("sort desc,id desc")
            ->paginate(10);
        # 返回数据
        $this->ok($data);
    }
    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        # 接收数据
        $params = input();
        # 数据检测
        $validata = $this->validate($params, [
            "name|品牌名称" => "require",
            "cate_id|分类ID" => "require",
            "desc|描述" => "require",
            "is_hot|是否热门" => "require|in:0,1",
            "sort|排序" => "require",
            "name" => "require",
        ]);
        if ($validata !== true) {
            $this->fail($validata);
        }
        # 数据处理
        # 判断他是否有上传logo图片
        if (isset($params["logo"]) && !empty($params["logo"]) && is_file("." . $params["logo"])) {
            # 重新定义新的名称
            $logo_name = dirname($params["logo"]) . DS . "Brand_thumb" . basename($params["logo"]);
            # 生成缩略图
            \think\Image::open("." . $params["logo"])->thumb(150, 150)->save("." . $logo_name);
        }
        # 添加数据
        $data = \app\common\model\Brand::create($params, true);
        $find = \app\common\model\Brand::where("id", $data["id"])->find();
        # 返回数据
        $this->ok($find);
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        $list = \app\common\model\Brand::where("id", $id)->find();
        $this->ok($list);
    }
    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        # 接收数据
        $params = input();
        # 数据检测
        $validata = $this->validate($params, [
            "name|品牌名称" => "require",
            "cate_id|分类ID" => "require",
            "desc|描述" => "require",
            "is_hot|是否热门" => "require|in:0,1",
            "sort|排序" => "require",
            "name" => "require",
        ]);
        if ($validata !== true) {
            $this->fail($validata);
        }
        # 数据处理
        # 判断他是否有上传logo图片
        if (isset($params["logo"]) && !empty($params["logo"]) && is_file("." . $params["logo"])) {
            # 重新定义新的名称
            $logo_name = dirname($params["logo"]) . DS . "Brand_thumb" . basename($params["logo"]);
            # 生成缩略图
            \think\Image::open("." . $params["logo"])->thumb(150, 150)->save("." . $logo_name);
        }
        # 修改数据
        $data = \app\common\model\Brand::update($params, ["id" => $id] ,true);
        $find = \app\common\model\Brand::where("id", $data["id"])->find();
        # 返回数据
        $this->ok($find);
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $goods = \app\common\model\Goods::where("brand_id",$id)->count();
        if($goods > 0 ){
            $this->fail("品牌下面还有商品，不能删除");
        }
        \app\common\model\Brand::where("id",$id)->delete();
        # 返回数据
        $this->ok();
    }
}
